clear all
macro drop _all
set more off

global data "C:\Users\larango\Dropbox\EvaluacionSPP-GeneracionE\Data\Clean"
global data2 "C:\Users\larango\Dropbox\EvaluacionSPP-GeneracionE\Data\Raw"

local maestra=0
local costos=1 
local clean=1

if `maestra'{
* Bases intermedias
{
* SNIES
use "${data2}\Matricula_graduados_2013_2020_red", clear
keep id_estudiante id_participante codigo_programa semestre* codigo_ies nombre_ies estado_ies caracter_ies sector nombre_programa acreditada area nivel_programa nbc modalidad id_municipio_ies fecha_grado semestre_grado grado_snies 
bysort id_participante (semestre1) : gen n = semestre1[1]
drop if semestre1!=n
drop n
gduplicates drop id_participante, force
destring id_participante id_municipio_ies, replace
rename area area_snies
drop semestre2 semestre3 semestre4 semestre5 semestre6 semestre7 semestre8 semestre9 semestre10 semestre11 semestre12 semestre13 semestre14 semestre15 semestre16
tempfile snies
save `snies'

* Posgrado
use "${data2}\Matricula_posgrado_2013_2020_red", clear
keep id_participante codigo_programa semestre* codigo_ies nombre_ies caracter_ies sector area nivel_programa nbc modalidad semestre_grado
bysort id_participante (semestre1) : gen n = semestre1[1]
drop if semestre1!=n
drop n
gduplicates drop id_participante, force
destring id_participante , replace
keep id_participante codigo_programa semestre1 codigo_ies nombre_ies caracter_ies sector area nivel_programa nbc modalidad semestre_grado
foreach x in codigo_programa semestre1 codigo_ies nombre_ies caracter_ies sector area nivel_programa nbc modalidad semestre_grado{
	rename `x' `x'_posgrado
}
gen posgrado=1
tempfile posgrado
save `posgrado'

use "${data2}\Deserción", clear
gegen periodo=concat(annio semestre)
drop if length(periodo)!=5
destring periodo, replace
keep id_participante periodo
gduplicates drop
gsort id_participante periodo
gen estudio=1
gegen min_per=min(periodo), by(id_participante)
gegen max_per=max(periodo), by(id_participante)
greshape wide estudio, i(id_participante) j(periodo)
greshape long estudio, i(id_participante) j(periodo)
drop if periodo<min_per
gen deser_sis=0 if periodo!=20201 & periodo!=20202
replace deser_sis=1 if estudio[_n+1]==. & estudio[_n+2]==. & periodo!=20201 & periodo!=20202
gen time_deser=periodo if deser_sis==1
ereplace time_deser=min(time_deser), by(id_participante)
keep if periodo==20192
keep id_participante deser_sis time_deser
tempfile desercion
save `desercion'

* Sigue estudiando
use "${data2}\Deserción", clear
gegen periodo=concat(annio semestre)
drop if length(periodo)!=5
keep id_participante periodo
gduplicates drop
gsort id_participante periodo
gen estudio=1
merge m:1 id_participante using "${data2}\llave_snies", keep(3) nogen
preserve
	use "${data2}\S11_20101_20202", clear
	keep estu_snp periodo11
	gduplicates drop
	tempfile periodo
	save `periodo'
restore
merge m:1 estu_snp using `periodo', keep(3) nogen
rename periodo11 p
foreach x in periodo p{
	replace `x'=regexr(`x',"1$","0")
	replace `x'=regexr(`x',"2$","5")
	destring `x', replace
	replace `x'=`x'/10
}
drop if p<2012
drop estu_snp
gen diff=periodo-p
replace diff=. if diff<=0
forvalues i=1/7{
	gen sigue_estudiando_`i'=1 if diff>`=`i'-1' & diff<=`i'
}
collapse (max) sigue_estudiando*, by(id_participante)
foreach x of varlist sigue_estudiando*{
	replace `x'=0 if `x'==.
}
tempfile estudio
save `estudio'

* Cambio carrera (No se tiene en cuenta doble programa)
use "${data2}\Matricula_graduados_2013_2020_red", clear
keep if grado_snies==1
keep id_participante codigo_programa semestre_grado
gduplicates drop
tempfile gr
save `gr'
use "${data2}\Deserción", clear
destring id_participante codigo_programa, replace
merge m:1 id_participante codigo_programa using `gr', nogen
gegen periodo=concat(annio semestre)
drop if length(periodo)!=5
destring periodo semestre_grado, replace
drop annio semestre id_ies
gduplicates drop
gsort id_participante periodo
gegen np=nvals(codigo_programa), by(id_participante)
gegen max_per=max(periodo), by(id_participante codigo_programa)
gen grado=(semestre_grado!=.)
drop periodo semestre_grado
gduplicates drop
drop if np==1
gsort id_participante max_per
by id_participante: gen nn=_n
by id_participante: gen cambio_programa=1 if grado==0 & max_per<max_per[_n+1] & nn!=_N
ereplace cambio_programa=max(cambio_programa)
keep id_participante cambio_programa
gduplicates drop
keep if cambio_programa==1
tempfile cambio
save `cambio'

* Distancia
use "${data2}/Matrices distancia/base_distancia", clear
destring codmpio codmpio2, replace
rename (codmpio codmpio2)(estu_cod_reside_mcpio11 id_municipio_ies)
tempfile distancia
save `distancia'

* Llave Saber Pro
/* Nos quedamos con el primer Pro que presenta la persona */
use "${data2}\llave_pro", clear	
gen p1=p*10+2 if p<9999
replace p1=p if p1==.
sort estu_snp11 p1
by estu_snp11: gen p2=_n
keep if p2==1
drop p2 
rename estu_snp estu_snp_pro
rename estu_snp11 estu_snp
cap drop p11 pro tiempo_pro
preserve
	use "${data2}\S11_20101_20202", clear
	keep estu_snp periodo11
	gduplicates drop
	tempfile periodo
	save `periodo', replace
restore
merge m:1 estu_snp using `periodo', keep(1 3) nogen
rename periodo11 p11
tostring p1, replace
replace p11=regexr(p11,"1$","0")
replace p11=regexr(p11,"2$","5")
replace p1=regexr(p1,"1$","0")
replace p1=regexr(p1,"2$","5")
destring p1 p11, replace
replace p1=p1/10
replace p11=p11/10
gen tiempo_pro = p1-p11
drop p11 p1
tempfile saber_pro
save `saber_pro'

* Saber Pro
use "${data2}/saber_pro_tyt_Spro_2012_2021", clear
keep estu_snp prueba_p punt_global_p  // este puntaje es el del nuevo examen
rename estu_snp estu_snp_pro
destring punt_global_p, replace 
gduplicates drop
tempfile pro
save `pro'

* Acreditación 
import excel "${data2}/Evolucion_evaluados_IES_2018.xls", firstrow clear sheet("Hoja1")
keep codigo_ies acreditación_*
drop if codigo_ies==.
greshape long acreditación_, i(codigo_ies) j(aux)
rename acreditación_ acreditada_año
tostring aux, replace
tempfile acreditacion
save `acreditacion'

* GE-Equidad
use "${data2}\arreglo_GE_equidad.dta", clear
keep if estu_snp!=.
split fechadenacimiento, parse(fechadenacimiento, "-")
gegen fecha_nacimiento=concat(fechadenacimiento3 fechadenacimiento2 fechadenacimiento1), punct(/)
gen dob=date(fecha_nacimiento,"DMY")
gen fecha_1=date("12/08/2018", "DMY")
gen fecha_2=date("10/03/2019", "DMY")
gen fecha_3=date("25/08/2019", "DMY")
gen fecha_4=date("7/11/2020", "DMY")
format %td dob fecha_1 fecha_2
gen edad_aspirante=.
replace edad_aspirante=(((fecha_1)-dob)/365.25) if periodoaprobación=="2019-1"
replace edad_aspirante=(((fecha_2)-dob)/365.25) if periodoaprobación=="2019-2"
replace edad_aspirante=(((fecha_3)-dob)/365.25) if periodoaprobación=="2020-1"
replace edad_aspirante=(((fecha_4)-dob)/365.25) if periodoaprobación=="2020-2"
replace edad_aspirante=round(edad_aspirante, 1)
*condicionamos según la regla de asignación del programa: estudiantes con edades entre 14 y 28 años a la hora de presentarse al programa
keep if (edad_aspirante>=14 & edad_aspirante<=28)
keep estadoequidad* puntajesisben areasisben estu_snp criterioentradaequidad periodoaprobación puntajesisben criterioentradaequidad
rename puntajesisben puntajesisben_equi
rename areasisben areasisben_equi
replace areasisben_equi="" if areasisben_equi=="0" | areasisben_equi=="NULL"
destring areasisben_equi, replace
gduplicates drop estu_snp, force
tempfile ge_equidad
save `ge_equidad'

* Colciencias
use "${data2}\Base_Colciencas_Inputs_Limpia_V27022018_IESPadre.dta", clear
keep cod_ies ano tiempo_completo matriculados PPE Ingresos_Investigacion TotalGastOpdeInvestig TotalGastOpdeBienestar TotalGastOp
keep if ano<2014 & ano>2011
gsort cod_ies ano
foreach x in PPE Ingresos_Investigacion TotalGastOpdeInvestig TotalGastOpdeBienestar TotalGastOp{
	replace `x'=`x'/0.981020613373554*100 if ano==2012
}
collapse (max) tiempo_completo matriculados (mean) PPE Ingresos_Investigacion TotalGastOpdeInvestig TotalGastOpdeBienestar TotalGastOp, by(cod_ies)
rename cod_ies codigo_ies
tostring codigo_ies, replace
tempfile colciencias
save `colciencias'

}

********************************************************************************
use "${data2}\S11_20101_20202.dta", clear
keep if (periodo11=="20121" | periodo11=="20122" | periodo11=="20131" | periodo11=="20132" | periodo11=="20141" | periodo11=="20142" | periodo11=="20151" | periodo11=="20152" | periodo11=="20161" | periodo11=="20162" | periodo11=="20171" | periodo11=="20172" | periodo11=="20181" | periodo11=="20182" | periodo11=="20191" | periodo11=="20192")

drop if estu_snp==.
gduplicates drop estu_snp, force
drop estu_nacionalidad11 estu_pais_reside11 fami_nivelsisben11 cole_codigo_icfes11 cole_nombre_sede11 punt_profundiza_lenguaje11 punt_profundiza_matematica11 punt_interdisc_medioambiente11 punt_interdisc_violenciaysoc11 punt_profundiza_biologia11 punt_profundiza_csociales11 estu_puesto11 decil* percentil* desemp* punt_ciencias_sociales11 punt_biologia11 punt_filosofia11 punt_fisica11 punt_quimica11 punt_lenguaje11

***merge PILOS
merge 1:1 estu_snp using "${data2}/arreglo_pilo", gen(_merge_spp) keep(1 3)

***merge GE-Excelencia
merge 1:1 estu_snp using "${data2}/arreglo_GE_excelencia", gen(_merge_G_excelencia) update keep(1 3 4 5)

***merge GE-Equidad
merge 1:1 estu_snp using `ge_equidad', gen(_merge_G_equidad) keep(1 3)

*** merge SISBEN 3
merge 1:1 estu_snp using  "${data2}\cruce_saber11_sisben_iii.dta", keep(1 3) gen(_merge_sisben_3) keepusing(area puntaje_sisben_3_trunc fecha_ingreso_sisben fecha_modificacion_sisben)
replace puntaje_sisben_3_trunc=spp_puntaje_sisbenii if puntaje_sisben_3_trunc=="" 
replace puntaje_sisben_3_trunc=puntajesisben_ge if puntaje_sisben_3_trunc=="" 
replace puntaje_sisben_3_trunc="" if regexm(puntaje_sisben_3_trunc,"[A-Z]")
replace puntaje_sisben_3_trunc=subinstr(puntaje_sisben_3_trunc,",",".",.)
replace puntaje_sisben_3_trunc="" if puntaje_sisben_3_trunc=="-"
destring puntaje_sisben_3_trunc, replace
rename puntaje_sisben_3_trunc puntaje_sisben_iii
replace puntajesisben_equi=puntaje_sisben_iii if puntajesisben_equi==.
destring area, replace
replace area=. if area>3
rename area area_sisben
replace area_sisben=area_sisbeniii if area_sisben==.
replace areasisben_ge="" if areasisben_ge=="-" | areasisben_ge=="NO TIENE"
destring areasisben_ge, replace
replace area_sisben=areasisben_ge if area_sisben==.
drop puntajesisben_ge spp_puntaje_sisbenii areasisben_ge area_sisbeniii areasisben_equi

*** merge SNIES
merge 1:1 estu_snp using "${data2}\llave_snies", keep(1 3) nogen
merge m:1 id_participante using `snies', keep(1 3) gen(_merge_snies)
merge m:1 id_participante using `posgrado', keep(1 3) gen(_merge_posgrado)

* Cambio programa
merge m:1 id_participante using `cambio', keep(1 3) nogen
replace cambio_programa=0 if cambio_programa==.

* Deserción
merge m:1 id_participante using `desercion', keep(1 3) nogen

* Sigue estudiando
merge m:1 id_participante using `estudio', keep(1 3) nogen

*** Merge con matriz de distancia
destring estu_cod_reside_mcpio11 id_municipio_ies, replace
merge m:1 estu_cod_reside_mcpio11 id_municipio_ies using `distancia', keep(1 3) nogen

*** merge SABER PRO
merge m:1 estu_snp using `saber_pro', keep(1 3) nogen
merge m:1 estu_snp_pro using `pro', keep(1 3) nogen

*** merge Colciencias
merge m:1 codigo_ies using `colciencias', keep(1 3) nogen
exit
split estu_fechanacimiento11, parse("/")
tab1 estu_fechanacimiento111 estu_fechanacimiento112 estu_fechanacimiento113
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^00","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^01","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^02","20")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^0","1")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^10","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^11","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^16","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^18","19")
replace estu_fechanacimiento113=regexr(estu_fechanacimiento113,"^15","20")
destring estu_fechanacimiento113, replace
replace estu_fechanacimiento113=. if (estu_fechanacimiento113<1926)
replace estu_fechanacimiento113=. if (estu_fechanacimiento113>2006)
tostring estu_fechanacimiento113, replace
replace estu_fechanacimiento113="" if estu_fechanacimiento113=="."
drop estu_fechanacimiento11
gegen estu_fechanacimiento11=concat(estu_fechanacimiento111 estu_fechanacimiento112 estu_fechanacimiento113) if estu_fechanacimiento113!="", punct("/")
drop estu_fechanacimiento113 estu_fechanacimiento112 estu_fechanacimiento111
gen dob=date(estu_fechanacimiento11,"DMY")
gen icfes_estudiante_edad=.
destring periodo11, replace

forvalues i=1/2{
	forvalues y=2012/2019{
		if `i'==2 replace icfes_estudiante_edad=floor((td(01aug`y')-dob)/365.25) if periodo11==`y'`i'
		if `i'==1 replace icfes_estudiante_edad=floor((td(01apr`y')-dob)/365.25) if periodo11==`y'`i'
	}
}

replace icfes_estudiante_edad=. if icfes_estudiante_edad<14 
replace icfes_estudiante_edad=. if icfes_estudiante_edad>80 
drop dob

replace fami_estratovivienda11="Sin Estrato" if fami_estratovivienda11=="" | regexm(fami_estratovivienda11,"Sin") | regexm(fami_estratovivienda11,"Vive")
tab fami_estratovivienda11, gen(stratum)

gen icfes_madre_educacion=.
replace icfes_madre_educacion=1 if (fami_educacionmadre11=="Ninguno" | fami_educacionmadre11=="Primaria completa" | fami_educacionmadre11=="Primaria incompleta")
replace icfes_madre_educacion=2 if (fami_educacionmadre11=="Secundaria (Bachillerato) completa" | fami_educacionmadre11=="Secundaria (Bachillerato) incompleta")
replace icfes_madre_educacion=3 if (fami_educacionmadre11=="Técnica o tecnológica completa" | fami_educacionmadre11=="Técnica o tecnológica incompleta")
replace icfes_madre_educacion=4 if (fami_educacionmadre11=="Educación profesional completa" | fami_educacionmadre11=="Educación profesional incompleta" | fami_educacionmadre11=="Postgrado")
label define edu_madre 1 "1: Ninguno, primaria completa/incompleta" 2 "2: Secundaria completa/incompleta" 3 "3: Técnico o tecnólogo completo/incompleto" 4 "4: Profesional completo/incompleto, posgrado"
label values icfes_madre_educacion edu_madre

gen icfes_padre_educacion=.
replace icfes_padre_educacion=1 if (fami_educacionpadre11=="Ninguno" | fami_educacionpadre11=="Primaria completa" | fami_educacionpadre11=="Primaria incompleta")
replace icfes_padre_educacion=2 if (fami_educacionpadre11=="Secundaria (Bachillerato) completa" | fami_educacionpadre11=="Secundaria (Bachillerato) incompleta")
replace icfes_padre_educacion=3 if (fami_educacionpadre11=="Técnica o tecnológica completa" | fami_educacionpadre11=="Técnica o tecnológica incompleta")
replace icfes_padre_educacion=4 if (fami_educacionpadre11=="Educación profesional completa" | fami_educacionpadre11=="Educación profesional incompleta" | fami_educacionpadre11=="Postgrado")
label define edu_padre 1 "1: Ninguno, primaria completa/incompleta" 2 "2: Secundaria completa/incompleta" 3 "3: Técnico o tecnólogo completo/incompleto" 4 "4: Profesional completo/incompleto, posgrado"
label values icfes_padre_educacion edu_padre
		
gen icfes_estudiante_colegio_jornada=.
replace icfes_estudiante_colegio_jornada=1 if cole_jornada11=="COMPLETA"
replace icfes_estudiante_colegio_jornada=2 if cole_jornada11=="MAÑANA"
replace icfes_estudiante_colegio_jornada=3 if cole_jornada11=="NOCHE"
replace icfes_estudiante_colegio_jornada=4 if cole_jornada11=="TARDE"
replace icfes_estudiante_colegio_jornada=5 if cole_jornada11=="SABATINA"
label define jornada 1 "1: Completa" 2 "2: Mañana" 3 "3: Noche" 4 "4: Tarde" 5 "4: Sabatina"
label values icfes_estudiante_colegio_jornada jornada
drop cole_jornada11		

* Generates dummy variables
gen female=(estu_genero11=="F")
replace female=. if estu_genero11==""
gen ethnminority=(estu_etnia11!="Ninguno" & estu_etnia11!="")
gen estu_trabaja=.
replace estu_trabaja=0 if estu_trabajaactualmente11=="No" | estu_horassemanatrabaja11=="0"
replace estu_trabaja=1 if (estu_trabajaactualmente11!="No" & estu_trabajaactualmente11!="") | (estu_horassemanatrabaja11!="0" & estu_horassemanatrabaja11!="")
drop estu_trabajaactualmente11 estu_trabajaactualmente11 estu_etnia11 estu_genero11

tab fami_ingresofmiliarmensual11, gen(hhinc) // de 2017 en adelante no existe esta variable
tab icfes_estudiante_colegio_jornada, gen(schoolsch)
tab icfes_madre_educacion, gen(educm)
tab icfes_padre_educacion, gen(educp)

* PUNTAJE SABER 11
* Los puntajes hasta 20141 no son comparables con los de 20142 en adelante. Sin embargo, el Icfes realizó una serie recalificada de los puntajes de 20121 a 20141
* para hacerlos comparables. Con base a eso, se crea los nuevos puntajes.

destring periodo11, replace
destring recaf_punt_sociales_ciudadanas11 recaf_punt_ingles11 recaf_punt_lectura_critica11 recaf_punt_matematicas11 recaf_punt_c_naturales11, replace
destring punt_global11 punt_matematicas11 punt_ingles11 punt_lectura_critica11 punt_c_naturales11 punt_sociales_ciudadanas11 punt_comp_ciudadana11, replace
* Poner label
foreach x in punt_matematicas11 punt_lectura_critica11 punt_c_naturales11 punt_sociales_ciudadanas11 punt_ingles11{
	replace `x'=recaf_`x' if periodo11<20142
	drop recaf_`x'
}
	
replace punt_global11=round((3*punt_matematicas11 + 3*punt_lectura_critica11 + 3*punt_c_naturales11 + 3*punt_sociales_ciudadanas11 + punt_ingles11)*5/13) if periodo11<20142
rename punt_global11 puntaje_global_s11_final
	
* DISTANCE TO SABER 11 CUTOFFS
gen puntaje_corte=puntaje_global_s11_final
replace puntaje_corte=puntaje_corte-310 if periodo11==20132 | periodo11==20131 | periodo11==20122 | periodo11==20121
replace puntaje_corte=puntaje_corte-310 if periodo11==20142 | periodo11==20141
replace puntaje_corte=puntaje_corte-318 if periodo11==20152 | periodo11==20151
replace puntaje_corte=puntaje_corte-342 if periodo11==20162 | periodo11==20161
replace puntaje_corte=puntaje_corte-348 if periodo11==20172 | periodo11==20171
replace puntaje_corte=puntaje_corte-359 if periodo11==20182 | periodo11==20181
replace puntaje_corte=puntaje_corte-350 if periodo11==20192 | periodo11==20191
replace puntaje_corte=. if puntaje_corte==puntaje_global_s11_final

gen elegible_sb11=0
replace elegible_sb11=1 if (puntaje_corte>=0 & puntaje_corte!=.)

** GENERAMOS LA VARIABLE ÁREA

gen double distcortesisben=.
replace distcortesisben=57.21-puntaje_sisben_iii if area_sisben==1	
replace distcortesisben=56.32-puntaje_sisben_iii if area_sisben==2
replace distcortesisben=40.75-puntaje_sisben_iii if area_sisben==3

** CORTE PARA GENERACIÓN E - EQUIDAD

gen double distcortesisben_ge_equidad=32-puntajesisben_equi

* Generamos variable de elegibilidad
gen elegible_sisben=(distcortesisben>=0 & !missing(distcortesisben))
gen elegible_spp=elegible_sisben*elegible_sb11
replace elegible_spp=. if periodo11>20172
gen elegible_ge_excelencia=elegible_sisben*elegible_sb11
replace elegible_ge_excelencia=. if periodo11<20181

gen elegible_ge_equidad=(distcortesisben_ge_equidad>=0 & !missing(distcortesisben_ge_equidad))
replace elegible_ge_equidad=. if (criterioentradaequidad=="FALLO DE TUTELA" | criterioentradaequidad=="INDIGENA" | criterioentradaequidad=="VICTIMA" | criterioentradaequidad=="VICTIMA E INDIGENA")
	

* TREATMENT STATUS:
gen beneficiario_spp=0 if !missing(puntaje_global_s11_final)
forvalues i=2015/2020{
    forvalues j=1/2{
	    replace beneficiario_spp=1 if regexm(estadomen`i'`j',"LEGALIZADO") | regexm(estadomen`i'`j',"RENOVADO")
	}
}

gen beneficiario_ge_excelencia=0 if !missing(puntaje_global_s11_final)
forvalues i=2019/2020{
    forvalues j=1/2{
	    replace beneficiario_ge_excelencia=1 if regexm(estadomen`i'`j'_ge,"LEGALIZADO") | regexm(estadomen`i'`j'_ge,"RENOVADO")
	}
}
replace beneficiario_ge_excelencia=1 if regexm(estadomen20211_ge,"LEGALIZADO") | regexm(estadomen20211_ge,"RENOVADO")


gen beneficiario_ge_equidad=0 if !missing(puntajesisben_equi)
forvalues i=2019/2021{
    forvalues j=1/2{
	    replace beneficiario_ge_equidad=1 if regexm(estadoequidad`i'`j',"APROBADO GIRADO") | regexm(estadoequidad`i'`j',"RENOVADO GIRADO") | regexm(estadoequidad`i'`j',"TERMINACION: FIN DEL SUBSIDIO")
	}
}
replace beneficiario_ge_equidad=. if (criterioentradaequidad=="FALLO DE TUTELA" | criterioentradaequidad=="INDIGENA" | criterioentradaequidad=="VICTIMA" | criterioentradaequidad=="VICTIMA E INDIGENA")

* Registros en los que el periodo de saber 11 es mayor que el del snies
replace semestre1=. if semestre1==1
gen m=0 if !missing(semestre1)	
replace m=1 if periodo11>=semestre1 & !missing(semestre1)

replace beneficiario_ge_excelencia=. if m==1
replace beneficiario_spp=. if m==1
replace beneficiario_ge_equi=. if m==1
replace cambio_programa=. if m==1

* Tránsito Educación superior
gen ingreso_inm=.
replace ingreso_inm=1 if (periodo11==20122 & semestre1==20131) | (periodo11==20132 & semestre1==20141) | (periodo11==20142 & semestre1==20151) | (periodo11==20152 & semestre1==20161) | (periodo11==20162 & semestre1==20171) | (periodo11==20131 & semestre1==20132) | (periodo11==20141 & semestre1==20142) | (periodo11==20151 & semestre1==20152) | (periodo11==20161 & semestre1==20162) | (periodo11==20162 & semestre1==20171) | (periodo11==20171 & semestre1==20172) | (periodo11==20172 & semestre1==20181) | (periodo11==20181 & semestre1==20182) | (periodo11==20182 & semestre1==20191) | (periodo11==20191 & semestre1==20192) | (periodo11==20192 & semestre1==20201) 
replace ingreso_inm=0 if ingreso_inm==.
replace ingreso_inm=. if m==1

tostring periodo11, gen(aux)
gen aux2=semestre1
tostring aux2, replace
foreach x in aux aux2{
	replace `x'=regexr(`x',"2$","5")
	replace `x'=regexr(`x',"1$","0")
	destring `x', replace
	replace `x'=`x'/10
}

forvalues j=1/7{
	gen ingreso_`j'=0
	replace ingreso_`j'=1 if aux2-aux<=`j' & aux2-aux>0 
	replace ingreso_`j'=. if m==1
	replace ingreso_`j'=. if aux+`j'>2020.5
}
drop aux2

gen ingreso_es=0
replace ingreso_es=1 if periodo11 < semestre1 & semestre1!=.
replace ingreso_es=. if m==1

* Graduación
* Graduación general
gen p_pro=p 
replace p_pro=p*10+2 if p<2022
gen grado=(p_pro!=.)
replace grado=0 if semestre1>=p_pro & semestre1!=. & p_pro!=. & grado==1
replace grado=0 if tiempo_pro<0.5 
replace grado=0 if tiempo_pro<3 & prueba_p==2
replace grado=. if m==1
gen grado1=grado
replace grado1=. if ingreso_inm!=1
drop p_pro

gen grado_pro=grado
replace grado_pro=0 if grado==1 & prueba_p==1
gen grado_pro1=grado1
replace grado_pro1=0 if grado1==1 & prueba_p==1

gen grado_tyt=grado
replace grado_tyt=0 if grado==1 & prueba_p==2
gen grado_tyt1=grado1
replace grado_tyt1=0 if grado1==1 & prueba_p==2

replace tiempo_pro=. if grado==. | grado==0
rename tiempo_pro tiempo_grado
gen tiempo_grado1=tiempo_grado
replace tiempo_grado1=. if ingreso_inm!=1

gen tiempo_pro=tiempo_grado
replace tiempo_pro=. if prueba_p==1
gen tiempo_pro1=tiempo_grado1
replace tiempo_pro1=. if prueba_p==1

gen tiempo_tyt=tiempo_grado
replace tiempo_tyt=. if prueba_p==2
gen tiempo_tyt1=tiempo_grado1
replace tiempo_tyt1=. if prueba_p==2
gen periodo_pro=p
replace periodo_pro=. if grado==. | grado==0
tostring periodo_pro, replace
replace periodo_pro=periodo_pro+"2" if length(periodo_pro)==4
replace periodo_pro=regexr(periodo_pro,"1$","0")
replace periodo_pro=regexr(periodo_pro,"2$","5")
destring periodo_pro, replace
replace periodo_pro=periodo_pro/10

* Grado año a año después de presentar SB11
foreach x in grado grado_pro grado_tyt{
	forvalues i=1/8{
		gen `x'_`i'=0
		replace `x'_`i'=1 if periodo_pro-aux<=`i' & `x'==1 & periodo_pro-aux>0 
		replace `x'_`i'=. if m==1 | `x'==.
		replace `x'_`i'=. if aux+`i'>2021.5
	}
}

* Grado SNIES
gen aux2=semestre_grado
tostring aux2, replace
foreach x in aux2{
	replace `x'=regexr(`x',"2$","5")
	replace `x'=regexr(`x',"1$","0")
	destring `x', replace
	replace `x'=`x'/10
}
destring semestre_grado, replace
gen tiempo_grado_snies = aux2-aux
replace grado_snies=0 if grado_snies==.
replace grado_snies=0 if semestre1>=semestre_grado & semestre1!=. & semestre_grado!=. & grado_snies==1
replace grado_snies=0 if tiempo_grado_snies<=0.5
replace grado_snies=0 if tiempo_grado_snies<3 & nivel_programa=="Universitaria"
replace grado_snies=. if m==1
replace tiempo_grado_snies=. if grado_snies==. | grado_snies==0 
replace semestre_grado=. if grado_snies==.

gen grado_snies_universitario=grado_snies
replace grado_snies_universitario=0 if grado_snies==1 & nivel_programa!="Universitaria"
gen grado_snies_tyt=grado_snies
replace grado_snies_tyt=0 if grado_snies==1 & nivel_programa=="Universitaria"

* Grado año a año después de presentar SB11
foreach x in grado_snies grado_snies_universitario grado_snies_tyt{
	forvalues i=1/7{
		gen `x'_`i'=0
		replace `x'_`i'=1 if aux2-aux<=`i' & `x'==1 & aux2-aux>0 
		replace `x'_`i'=. if m==1 | `x'==.
		replace `x'_`i'=. if aux+`i'>2020.5
	}
}

* Ingreso posgrado
tostring semestre1_posgrado, gen(aux3)
replace aux3=regexr(aux3,"2$","5")
replace aux3=regexr(aux3,"1$","0")
destring aux3, replace
replace aux3=aux3/10
gen tiempo_posgrado=aux3-aux
replace posgrado=0 if posgrado==.
replace posgrado=0 if semestre1>=semestre1_posgrado & semestre1!=. & semestre1_posgrado!=. & posgrado==1
replace posgrado=0 if tiempo_posgrado<=4
replace posgrado=. if m==1
drop aux2 aux3 tiempo_posgrado

* Se estandariza el puntaje de PRO para mayor interpretabilidad, con base en la media y desviación estándar oficiales.
gen punt_pro=punt_global_p if prueba_p==2
replace punt_pro=(punt_pro-150)/30
replace punt_pro=. if grado_pro==. | grado_pro==0
gen punt_pro1=punt_pro
replace punt_pro1=. if ingreso_inm!=1

gen punt_tyt=punt_global_p if prueba_p==1
replace punt_tyt=(punt_tyt-100)/20
replace punt_tyt=. if grado_tyt==. | grado_tyt==0
gen punt_tyt1=punt_tyt
replace punt_tyt1=. if ingreso_inm!=1


* Deserción y continuidad
* No se debe evaluar a todos por igual, por lo que solo vamos a ver si los que entraron inmediatamente
* Se cambia la categoría de desertor a aquellos que ya presentaron Pro (presunto graduado)
* Para ello, no se tienen en cuenta los que reportan un examen en un periodo inferior al que lo vemos por primera vez en SNIES
replace deser_sis=0 if grado==1 & deser_sis==1
replace deser_sis=. if m==1
gen deser_sis1=deser_sis
replace deser_sis1=. if ingreso_inm!=1

* Se toma como 6 y no como 5 porque el últmo periodo que se ve es 20192, es decir, no se ve más en 20201
gen deser_6= ((periodo11==20142 & deser_sis1==1 & time_deser<=20192) | (periodo11==20132 & deser_sis1==1 & time_deser<=20182) | (periodo11==20122 & deser_sis1==1 & time_deser<=20172) )
replace deser_6=. if periodo11!=20142 & periodo11!=20132 & periodo11!=20122
replace deser_6=. if m==1 | deser_sis1==.

forvalues i=1/7{
	replace sigue_estudiando_`i'=0 if sigue_estudiando_`i'==.
	replace sigue_estudiando_`i'=. if m==1
	replace sigue_estudiando_`i'=. if aux+`i'>2020.5
}

gegen años_estudio=rowtotal(sigue_estudiando_*)
replace años_estudio=. if m==1
drop aux

* Acreditación por año
drop acreditada
destring codigo_ies, replace
tostring periodo11, gen(aux)
replace aux=substr(aux,1,4)
merge m:1 codigo_ies aux using `acreditacion', nogen keep(1 3)

* Acreditadas 2014 y 2018
gen acreditada=acreditada_año if aux=="2014"
ereplace acreditada=max(acreditada), by(codigo_ies)
gen acreditada2018=acreditada_año if aux=="2018"
ereplace acreditada2018=max(acreditada2018), by(codigo_ies)
foreach x of varlist acreditada*{
	replace `x'=0 if `x'==.
}
gen noacreditada=1 if acreditada==0
gen noacreditada2018=1 if acreditada2018==0
drop aux

gen privada=1 if sector=="Privado"
replace privada=0 if sector=="Oficial"
gen publica=1 if privada==0
 
gen hq_pri=1 if acreditada==1 & privada==1
gen hq_pub=1 if acreditada==1 & privada==0
gen lq_pri=1 if acreditada==0 & privada==1
gen lq_pub=1 if acreditada==0 & privada==0

gen hq_pri2018=1 if acreditada2018==1 & privada==1
gen hq_pub2018=1 if acreditada2018==1 & privada==0
gen lq_pri2018=1 if acreditada2018==0 & privada==1
gen lq_pub2018=1 if acreditada2018==0 & privada==0

* Parental BA
gen parental_ba=(icfes_padre_educacion==3 | icfes_padre_educacion==4 | icfes_madre_educacion==3 | icfes_madre_educacion==4)

** Se generan medidas de calidad de los colegios
preserve
	gen aux=(ingreso_inm==1 & acreditada==1)
	replace aux=. if ingreso_inm==.	
	gen mean_p310=(puntaje_global_s11_final>=310 & puntaje_global_s11_final!=.)
	gcollapse mean_enrollment=ingreso_inm mean_enrollment_hq=aux mean_sb11=puntaje_global_s11_final mean_p310, by(cole_cod_dane_sede11 periodo11)
	drop if cole_cod_dane_sede11=="" | cole_cod_dane_sede11=="000000000000"
	foreach x in enrollment enrollment_hq sb11 p310{
		gen quartil_`x'=.
		forvalues a=2012/2019{
			forvalues s=1/2{
				xtile quartil_`x'_`a'`s'=mean_`x' if periodo11==`a'`s', nq(4)
				replace quartil_`x'=quartil_`x'_`a'`s' if periodo11==`a'`s'
				drop quartil_`x'_`a'`s'
			}
		}
	}
	rename mean_p310 p310
	drop mean*
	* Se rezagan las variables
	gegen id=group(cole_cod_dane_sede11)
	gegen t=group(periodo11)
	xtset id t
	foreach x in quartil_enrollment quartil_enrollment_hq quartil_sb11 quartil_p310{
		gen `x'2=L2.`x'
		drop `x'
		rename `x'2 `x'
	}
	drop id t
	drop if periodo11==20121 | periodo11==20122
	tempfile cole
	save `cole'
restore

preserve
	keep if ingreso_es==1
	drop if codigo_ies==.
	gcollapse (p5) ies_p5=puntaje_global_s11_final, by(semestre1 codigo_ies acreditada)
	gen college_selectivity=.
	forvalues a=2013/2020{
		if `a'==2013 local semestres 2
		if `a'!=2013 local semestres 1 2
		foreach s of local semestres {
			xtile college_selectivity_`a'`s'=ies_p5 if semestre1==`a'`s', nq(4)
			replace college_selectivity=college_selectivity_`a'`s' if semestre1==`a'`s'
			drop college_selectivity_`a'`s'
		}
	}
	drop ies_p5
	* Se rezaga la variable
	gegen id=group(codigo_ies)
	gegen t=group(semestre1)
	xtset id t
	gen aux=L2.college_selectivity
	drop college_selectivity id t acreditada
	rename aux college_selectivity
	tempfile ies
	save `ies'
restore

preserve
	keep if ingreso_es==1
	drop if codigo_programa==.
	gcollapse ies_p5=puntaje_global_s11_final, by(semestre1 codigo_programa)
	gen major_selectivity=.
	forvalues a=2013/2020{
		if `a'==2013 local semestres 2
		if `a'!=2013 local semestres 1 2
		foreach s of local semestres {
			xtile major_selectivity_`a'`s'=ies_p5 if semestre1==`a'`s', nq(4)
			replace major_selectivity=major_selectivity_`a'`s' if semestre1==`a'`s'
			drop major_selectivity_`a'`s'
		}
	}
	drop ies_p5
	* Se rezaga la variable
	gegen id=group(codigo_programa)
	gegen t=group(semestre1)
	xtset id t
	gen aux=L2.major_selectivity // ¿uno o dos rezagos?
	drop major_selectivity id t 
	rename aux major_selectivity
	tempfile major
	save `major'
restore

merge m:1 cole_cod_dane_sede11 periodo11 using `cole', nogen
merge m:1 semestre1 codigo_ies using `ies', nogen
merge m:1 semestre1 codigo_programa using `major', nogen

* Major categories
gen stem=(nbc=="Medicina" | area_snies=="Matemáticas y ciencias naturales" | regexm(nbc,"ngenier"))
gen stem_plus=(stem==1 | area_snies=="Agronomía, veterinaria y afines" | area_snies=="Ciencias de la salud" | nbc=="Psicología" | regexm(nbc,"militar") | nbc=="Educación" | regexm(area_snies,"Economía") | nbc=="Arquitectura")
gen arts=(area_snies=="Bellas artes")
gen social=(stem_plus==0 & arts==0)
foreach x in stem stem_plus arts social{
	replace `x'=. if nbc=="" | area_snies==""
}

merge 1:1 estu_snp using "${data2}\PILA_anual.dta", keep(1 3) nogen


** Con respecto a SNIES
preserve
	tostring semestre_grado, gen(aux)
	replace aux="" if aux=="."
	gen y_grado=substr(aux,1,4)
	gen m_grado=substr(aux,5,1)
	replace m_grado="7" if m_grado=="2" 
	destring y_grado m_grado, replace
	gen grado_aux=ym(y_grado,m_grado)
	format grado_aux %tm
	keep estu_snp trimestre* numero_trimestres* grado_aux y_grado m_grado
	greshape long trimestre numero_trimestres, i(estu_snp) j(t)
	drop if grado_aux==.
	drop if t<y_grado
	drop if numero_trimestres==.	
	* para sacar número de trimestres después de graduación
	*replace numero_trimestres=numero_trimestres-1 if y_grado==t & grado_aux>trimestre
	drop if trimestre<grado_aux
	gegen min=min(t), by(estu_snp)
	keep if t==min
	gen tiempo_empleo=trimestre-grado_aux
	replace tiempo_empleo=tiempo_empleo+1 if m_grado==1
	replace tiempo_empleo=tiempo_empleo+3 if m_grado==7
	replace tiempo_empleo=tiempo_empleo/4
	keep estu_snp tiempo_empleo
	tempfile trimestres
	save `trimestres'
restore

preserve
	keep estu_snp periodo11 trimestre* numero_trimestres*
	greshape long trimestre numero_trimestres, i(estu_snp) j(t)
	tostring periodo11, gen(aux)
	replace aux="" if aux=="."
	gen y_11=substr(aux,1,4)
	gen m_11=substr(aux,5,1)
	replace m_11="4" if m_11=="1"
	replace m_11="8" if m_11=="2"
	destring y_11 m_1, replace
	gen p_aux=ym(y_11,m_11)
	format p_aux %tm
	drop if trimestre==.
	drop if t<y_11
	replace numero_trimestres=numero_trimestres-1 if y_11==t & p_aux>=trimestre
	drop trimestre periodo11 aux y_11 m_11 p_aux
	greshape wide numero_trimestres, i(estu_snp) j(t)
	tempfile numero_trimestres
	save `numero_trimestres'
restore

** Con respecto a examen
preserve
	replace periodo_pro=periodo_pro*10
	tostring periodo_pro, gen(aux)
	replace aux="" if aux=="."
	gen y_grado=substr(aux,1,4)
	gen m_grado=substr(aux,5,1)
	replace m_grado="6" if m_grado=="0" 
	replace m_grado="12" if m_grado=="5" 
	destring y_grado m_grado, replace
	gen grado_aux=ym(y_grado,m_grado)
	format grado_aux %tm
	keep estu_snp trimestre* numero_trimestres* grado_aux y_grado m_grado
	greshape long trimestre numero_trimestres, i(estu_snp) j(t)
	drop if grado_aux==.
	drop if t<y_grado
	drop if numero_trimestres==.	
	* para sacar número de trimestres después de graduación
	*replace numero_trimestres=numero_trimestres-1 if y_grado==t & grado_aux>trimestre
	drop if trimestre<=grado_aux
	gegen min=min(t), by(estu_snp)
	keep if t==min
	gen tiempo_empleo_exam=trimestre-grado_aux
	replace tiempo_empleo_exam=tiempo_empleo_exam+2 if m_grado==6
	replace tiempo_empleo_exam=tiempo_empleo_exam/4
	keep estu_snp tiempo_empleo_exam
	tempfile trimestres2
	save `trimestres2'
restore

drop trimestre* numero_trimestres*
merge 1:1 estu_snp using `trimestres', nogen
merge 1:1 estu_snp using `trimestres2', nogen
merge 1:1 estu_snp using `numero_trimestres', nogen

forvalues i=1/7{
	gen distancia_`i'=distancia if ingreso_`i'==1
	*replace distancia_`i'=0 if ingreso_`i'!=.
}
gen distancia_0=distancia if ingreso_inm==1

foreach x of varlist _all{
	label var `x' ""
}

save "${data}\base_maestra.dta", replace
}

if `costos'{

**# Costos base SPP

use "${data}\base_maestra.dta", clear
keep if periodo11==20172 | periodo11==20162 | periodo11==20152 | periodo11==20142
keep if beneficiario_spp==1
keep estu_snp periodo11 pub sostenimiento* matricula* valor* codigo_programa codigo_ies
drop matriculados
greshape long matricula_ valor_ sostenimiento_, i(estu_snp) j(semestre) string
order estu_snp periodo11 codigo_ies codigo_programa
replace semestre=regexr(semestre,"_","")
drop if matricula_==0 | matricula_==.

tostring periodo11, gen(aux)
tostring semestre, replace
foreach x in aux semestre{
	replace `x'=regexr(`x',"2$","5")
	replace `x'=regexr(`x',"1$","0")
	destring `x', replace
	replace `x'=`x'/10
}
replace valor_=0 if valor_==.

preserve
	drop if periodo11==20142 
	keep if valor_!=0
	drop if codigo_ies==.
	rename valor_ costo
	keep codigo_ies codigo_programa semestre costo
	tempfile arreglo
	save `arreglo'
	gegen ms=min(semestre), by(codigo_programa)
	keep if semestre==ms
	collapse costo, by(codigo_programa)
	tempfile programas
	save `programas'
	use `arreglo', clear
	gegen ms=min(semestre), by(codigo_ies)
	keep if semestre==ms
	collapse costo, by(codigo_ies)
	tempfile ies
	save `ies'
restore

preserve
	keep if periodo11==20142 & pub==1
	keep if semestre<2016
	merge m:1 codigo_programa using `programas', keep(1 3)
	replace valor_=costo if _merge==3
	tempfile programas1
	save `programas1'
	keep if _merge==3
	drop _merge costo
	tempfile programas2
	save `programas2'
	use `programas1', clear
	keep if _merge==1
	drop _merge
	merge m:1 codigo_ies using `ies', keep(1 3)
	replace valor_=costo if _merge==3
	tab codigo_ies
	drop _merge costo
	tempfile programas3
	save `programas3'
restore

dis _N
drop if periodo11==20142 & pub==1 & semestre<2016
append using `programas2'
append using `programas3'
gsort estu_snp semestre

gegen vv=mean(valor_), by(codigo_programa semestre)
replace valor_=vv if periodo11==20142 & semestre>=2016 & pub==1
drop vv
gegen vv=mean(valor_), by(codigo_ies semestre)
replace valor_=vv if periodo11==20142 & semestre>=2016 & pub==1 & (valor_==0 | valor_==.)
drop vv
replace valor_=0 if valor_==.
count if periodo11==20142 & publica ==1 & valor_ ==0 & semestre <2016 // 221
count if periodo11==20142 & publica ==1 & valor_ ==0 & semestre >=2016 // 225
count if periodo11==20142 & publica ==1 & valor_ ==0 // 446
tab codigo_ies if periodo11==20142 & publica ==1 & valor_ ==0 // 32
tab codigo_programa if periodo11==20142 & publica ==1 & valor_ ==0 // 95

replace valor_=. if valor_==0
gegen vv=mean(valor_) if publica ==1  , by(semestre)
replace valor_=vv if pub==1 & valor_==.
drop vv
replace valor_=0 if valor_==.

replace valor_=matricula_ if valor_==0
drop if periodo11==20172 | periodo11==20162
gen diff=semestre-aux
drop if diff<0.5
replace diff=round(diff+0.1)
gen año=floor(semestre)
gen mes=semestre-año
replace mes=1 if mes==0
replace mes=7 if mes==0.5

preserve
	keep codigo_ies codigo_programa semestre valor_
	gen año=floor(semestre)
	collapse valor_, by(codigo_ies codigo_programa año)
	tempfile cp
	save `cp'
	collapse valor_, by(codigo_ies año)
	gen fuente="ICETEX"
	tempfile ci
	save `ci'
restore

drop aux codigo_ies codigo_programa semestre publica año mes
gen costo_privado_=matricula_+sostenimiento_
gen costo_social_=valor_+sostenimiento_
collapse (sum) costo_privado_ costo_social_, by(estu_snp periodo11 diff)
greshape wide costo_privado_ costo_social_, i(estu_snp) j(diff)
rename costo* costo*_spp
tempfile costos_spp
save `costos_spp'

import excel "${data2}/1.1.INF_Serie histórica.xlsx", clear sheet("Hoja1") firstrow case(lower)
tempfile ipc
save `ipc'

import excel using "${data2}/Costos_matricula.xlsx", clear firstrow case(lower) sheet("Hoja1")
keep if nivelacadémico=="PREGRADO"
drop nivelacadémico códigoinstitución
rename 	(códigosniesdelprograma anio costomatrículaparaestudiantes) ///
		(codigo_programa año valor_)
replace valor_=subinstr(valor_,".","",.)
destring codigo_programa año valor_, replace
append using `cp'
drop codigo_ies
rename valor costo_matricula_p
drop if costo_matricula==. | costo_matricula<400000
sort codigo_programa año
keep if año>2012
gegen ma=min(año), by(codigo_programa)
keep if año==ma
drop ma
collapse (max) costo_matricula, by(codigo_programa año)
gen mes=7
dis _N
merge m:1 año mes using `ipc', keep(3) nogen
replace costo_matricula=costo_matricula/índice*100
drop if año==2020
drop año mes índice
drop if codigo_programa==.
tempfile costo_programas_spp
save `costo_programas_spp'

import excel using "${data2}/Costos_matricula.xlsx", clear firstrow case(lower) sheet("Hoja2")
rename 	(códigoies matrículaalumnonuevo) ///
		(codigo_ies valor_)
drop if valor_==. | valor_<1000000
destring codigo_ies, replace
collapse valor, by(codigo_ies año)
gen fuente="fabio"
append using `ci'
rename valor costo_matricula_i
drop if costo_matricula==. | costo_matricula<400000
sort codigo_ies año
keep if año>2012
gegen ma=min(año), by(codigo_ies)
keep if año==ma
drop ma
collapse (max) costo_matricula, by(codigo_ies año)
gen mes=7
dis _N
merge m:1 año mes using `ipc', keep(3) nogen
replace costo_matricula=costo_matricula/índice*100
drop año mes índice
drop if codigo_ies==.
tempfile costo_ies_spp
save `costo_ies_spp'

use "${data2}/Base_Colciencas_Inputs_Limpia_V27022018_IESPadre", clear
replace IngOpertransferenciasoficiale=IngOpertransferenciasoficiale*1000
gen costo_matricula_f=IngOpertransferenciasoficiale / (matriculados*2)
keep if oficial==1
keep ano cod_ies costo_matricula_f
drop if costo_matricula_f==. | costo_matricula_f==0
gsort cod_ies ano
gegen max=max(ano), by(cod_ies)
keep if ano==max
drop max
rename ano año
rename cod_ies codigo_ies
gen mes=7
merge m:1 año mes using `ipc', keep(3) nogen
replace costo_matricula_f=costo_matricula_f/índice*100
drop año mes índice
drop if codigo_ies==.
tempfile costo_ies_f
save `costo_ies_f'

**# Costos base GE

use "${data}\base_maestra", clear
keep if periodo11==20192 | periodo11==20182 | periodo11==20172 | periodo11==20162 | periodo11==20152 | periodo11==20142
keep if beneficiario_spp==1 | beneficiario_ge_excelencia==1
keep estu_snp periodo11 pub sostenimiento* matricula* valor* codigo_programa codigo_ies
drop matriculados
greshape long matricula_ valor_ sostenimiento_, i(estu_snp) j(semestre) string
order estu_snp periodo11 codigo_ies codigo_programa
replace semestre=regexr(semestre,"_","")
drop if matricula_==0 | matricula_==.

tostring periodo11, gen(aux)
tostring semestre, replace
foreach x in aux semestre{
	replace `x'=regexr(`x',"2$","5")
	replace `x'=regexr(`x',"1$","0")
	destring `x', replace
	replace `x'=`x'/10
}
gsort estu_snp semestre

gegen vv=mean(valor_), by(codigo_programa semestre)
replace valor_=vv if periodo11==20142 & semestre>=2016 & pub==1
drop vv
gegen vv=mean(valor_) if publica ==1  , by(semestre)
replace valor_=vv if pub==1 & valor_==.
drop vv
replace valor_=0 if valor_==.

replace valor_=matricula_ if valor_==0
gen diff=semestre-aux
drop if diff<0.5
replace diff=round(diff+0.1)
gen año=floor(semestre)
gen mes=semestre-año
replace mes=1 if mes==0
replace mes=7 if mes==0.5

preserve
	keep codigo_ies codigo_programa semestre valor_
	gen año=floor(semestre)
	collapse valor_, by(codigo_ies codigo_programa año)
	tempfile cp
	save `cp', replace
	collapse valor_, by(codigo_ies año)
	gen fuente="ICETEX"
	tempfile ci
	save `ci', replace
restore

drop aux codigo_ies codigo_programa semestre publica año mes
gen costo_privado_=matricula_+sostenimiento_
gen costo_social_=valor_+sostenimiento_
collapse (sum) costo_privado_ costo_social_, by(estu_snp periodo11 diff)
greshape wide costo_privado_ costo_social_, i(estu_snp) j(diff)
rename costo* costo*_ge
tempfile costos_ge
save `costos_ge', replace

import excel "${data2}/1.1.INF_Serie histórica.xlsx", clear sheet("Hoja1") firstrow case(lower)
tempfile ipc
save `ipc'

import excel using "${data2}/Costos_matricula.xlsx", clear firstrow case(lower) sheet("Hoja1")
keep if nivelacadémico=="PREGRADO"
drop nivelacadémico códigoinstitución
rename 	(códigosniesdelprograma anio costomatrículaparaestudiantes) ///
		(codigo_programa año valor_)
replace valor_=subinstr(valor_,".","",.)
destring codigo_programa año valor_, replace
append using `cp'
drop codigo_ies
rename valor costo_matricula_p
drop if costo_matricula==. | costo_matricula<400000
sort codigo_programa año
keep if año>2012
collapse (max) costo_matricula, by(codigo_programa año)
gen mes=7
dis _N
merge m:1 año mes using `ipc', keep(3) nogen
replace costo_matricula=costo_matricula/índice*100
drop if año==2020
drop año mes índice
drop if codigo_programa==.
collapse costo_matricula, by(codigo_programa)
tempfile costo_programas_ge
save `costo_programas_ge'

import excel using "${data2}/Costos_matricula.xlsx", clear firstrow case(lower) sheet("Hoja2")
rename 	(códigoies matrículaalumnonuevo) ///
		(codigo_ies valor_)
drop if valor_==. | valor_<1000000
destring codigo_ies, replace
collapse valor, by(codigo_ies año)
gen fuente="fabio"
append using `ci'
rename valor costo_matricula_i
drop if costo_matricula==. | costo_matricula<400000
sort codigo_ies año
collapse (max) costo_matricula, by(codigo_ies año)
gen mes=7
dis _N
merge m:1 año mes using `ipc', keep(3) nogen
replace costo_matricula=costo_matricula/índice*100
drop año mes índice
drop if codigo_ies==.
collapse costo_matricula, by(codigo_ies)
tempfile costo_ies_ge
save `costo_ies_ge'

}

if `clean'{

use "${data}\base_maestra.dta", clear
keep if periodo11==20122 |periodo11==20132 | periodo11==20142 | periodo11==20152 | periodo11==20162 | periodo11==20172 | periodo11==20182 | periodo11==20192 | periodo11==20121 | periodo11==20131 | periodo11==20141 | periodo11==20151

keep estu_snp periodo11 distcortesisben area_sisben puntaje_sisben_iii elegible* beneficiario_spp beneficiario_ge_excelencia _merge_G_excelencia _merge_spp _merge_snies _merge_posgrado puntaje_global_s11_final puntaje_corte ingreso_* distancia distancia_* grado* tiempo_* periodo_pro tiempo_grado posgrado punt_pro* punt_tyt* deser_* sigue_estudiando_* años_estudio acreditada_año parental_ba quartil* college_selectivity major_selectivity stem stem_plus arts social ibc* sm* trabajo* dias* sector* cp* tamaño* numero_empleados* tiempo_empleo tiempo_empleo_exam numero_trimestres* acreditada noacreditada privada publica hq_* lq_* estu_trabaja ethnminority fami_estratovivienda11 stratum* schoolsch* cole_naturaleza11 codigo_programa codigo_ies estu_cod_reside_mcpio11 female icfes_estudiante_edad fami_personashogar11 educm1 educm2 educm3 educm4 educp1 educp2 educp3 educp4 cole_calendario11 fami_pisoshogar11 fami_tieneinternet11 fami_tienecomputador11 fami_tieneautomovil11 fami_tiene_celular11 estu_areareside cole_area_ubicacion11 estu_trabaja ethnminority distancia estu_estudiante11 nbc area_snies m nivel_programa semestre_grado semestre1_posgrado cambio_programa cole_cod_dane_sede11 estado_del_credito numero_semestres cuota deuda_acumulada sostenimiento* matricula* valor* tiempo_completo matriculados PPE Ingresos_Investigacion TotalGastOpdeInvestig TotalGastOpdeBienestar TotalGastOp practicante* independiente* empleado* parental_ba quartil* college_selectivity major_selectivity stem stem_plus arts social acreditada* noacreditada* privada publica hq_* lq_* estu_trabaja ethnminority fami_estratovivienda11 stratum* schoolsch* cole_naturaleza11 codigo_programa codigo_ies estu_cod_reside_mcpio11 female icfes_estudiante_edad fami_personashogar11 educm1 educm2 educm3 educm4 educp1 educp2 educp3 educp4 cole_calendario11 fami_pisoshogar11 fami_tieneinternet11 fami_tienecomputador11 fami_tieneautomovil11 estu_areareside11 cole_area_ubicacion11 estu_trabaja ethnminority distancia estu_estudiante11 versión_ge grupoétnicoalquepertenece_ge discapacidad_ge esvictimadelconflicto_ge fami_numlibros11 beneficiario_ge_equidad _merge_G_equidad distcortesisben_ge_equidad nivel_programa cole_caracter11 estu_depto_reside11 estu_cod_reside_depto11 caracter_ies punt_global_p prueba_p nombre_ies sector grado_* modalidad social arts stem_plus stem major_selectivity college_selectivity quartil_enrollment quartil_enrollment_hq quartil_sb11 quartil_p310 acreditada_año acreditada sigue_estudiando_1 sigue_estudiando_2 sigue_estudiando_3 sigue_estudiando_4 puntaje_sisben_iii beneficiario_spp nivel_programa periodoaprobación m grado* tiempo_* periodo_pro tiempo_grado posgrado punt_pro* punt_tyt* deser_* sigue_estudiando_* años_estudio semestre1 semestre_grado fecha_grado tiempo_grado prueba_p tiempo_pro tiempo_grado1 tiempo_pro1 periodo_pro fecha_ingreso_sisben fecha_modificacion_sisben estado_del_credito numero_semestres cuota deuda_acumulada sostenimiento* matricula* valor* tiempo_completo matriculados PPE Ingresos_Investigacion TotalGastOpdeInvestig TotalGastOpdeBienestar TotalGastOp


* Arreglos adicionales de GE
** Adicionamos la condición de acceso para 20192 en la que eran elegibles aquellas personas que estuvieran en el top 10 de saber 11 y que estuvieran registrados en el sisbenIII en ciertos departamentos.
	gsort periodo11 estu_cod_reside_depto11 -puntaje_global_s11_final 
	bysort periodo11 estu_cod_reside_depto11: gen ranking_ge_ex_sb11= _n if distcortesisben!=.  & periodo11==20192
	gsort periodo11 estu_cod_reside_depto11 +ranking_ge_ex_sb11 -puntaje_global_s11_final 
	bysort periodo11 estu_cod_reside_depto11: gen ranking_ge_ex_sb11_2= _n if distcortesisben!=.  & periodo11==20192
	drop ranking_ge_ex_sb11
		
	replace elegible_ge_excelencia=1 if (periodo11==20192) & (ranking_ge_ex_sb11_2<=10 & ranking_ge_ex_sb11_2!=.) & (estu_depto_reside11=="AMAZONAS" | estu_depto_reside11=="ARAUCA" | estu_depto_reside11=="CAQUETA" | estu_depto_reside11=="CASANARE" | estu_depto_reside11=="CESAR" | estu_depto_reside11=="CHOCO" | estu_depto_reside11=="GUAINIA" | estu_depto_reside11=="GUAVIARE" | estu_depto_reside11=="LA GUAJIRA" | estu_depto_reside11=="SAN ANDRES" | estu_depto_reside11=="VAUPES" | estu_depto_reside11=="VICHADA")

	// acreditación fija a 2018
	merge m:1 codigo_ies using "${data2}/acred_25p_2018_2021.dta", nogen keep(1 3)

	* Running variables:
	rename puntaje_corte running_saber11
	label var running_saber11 "Distance to SABER 11 cutoff"
	rename distcortesisben running_sisben
	label var running_sisben "Distance to SISBEN cutoff"
	rename area_sisben sisben_area
	label var sisben_area "SISBEN area"
	label define arealabel 1 "Main metro area" 2 "Other urban area" 3 "Rural area"
	label values sisben_area arealabel
	rename puntaje_sisben_iii sisben_score
	label var sisben_score "SISBEN score"
	rename periodo11 icfes_per
	
	rename elegible_sisben eligible_sisben
	label var eligible_sisben "=1 if SISBEN-eligible" 
	rename elegible_sb11 eligible_saber11
	label var eligible_saber11 "=1 if SABER 11-eligible"
	rename elegible_spp eligible_spp
	label var eligible_spp "=1 if eligible for SPP"
	rename elegible_ge_excelencia eligible_ge
	label var eligible_ge "=1 if eligible for GE-Excellence"
	
	* Treatment indicator:
	rename beneficiario_spp beneficiary_spp
	label var beneficiary_spp "=1 if SPP recipient"
	rename beneficiario_ge_excelencia beneficiary_ge
	label var beneficiary_ge "=1 if GE-Excellence recipient"

	* Outcomes:
	* 1) Access:
	rename ingreso_inm access_0
	label var access_0 "=1 if immediate access in any HEI" 
	forvalues i=1/7{
		rename ingreso_`i' access_`i'
		label var access_`i' "=1 if access in any HEI after `i' years HS"
	}
	rename ingreso_es access_he
	label var access_he "=1 if access in any HEI any time"
	forvalues i=0/7{
		gen access_pro_`i'=(access_`i'==1 & nivel_programa=="Universitaria")
		replace access_pro_`i'=. if access_`i'==.
		gen access_tyt_`i'=(access_`i'==1 & nivel_programa!="Universitaria")
		replace access_tyt_`i'=. if access_`i'==.
	}
	
	* 2) Performance in HE
	forvalues i=1/7{
		rename sigue_estudiando_`i' enrolled_`i'
		label var enrolled_`i' "=1 if is studying in any HEI after `i' years HS"
	}
	drop deser_sis
	*rename deser_sis dropout		
	*label var dropout "=1 if dropout any HEI" 
	rename deser_sis1 dropout_inm
	label var dropout_inm "=1 if dropout any HEI | immediate access" 
	rename deser_6 dropout_6
	label var dropout_6 "=1 if dropout any HEI after 6 years HS | immediate access" 
	rename años_estudio years_study
	label var years_study "Total years of schooling" 
	gen dropout_inm_pro=dropout_inm if access_pro_0==1
	gen dropout_inm_tyt=dropout_inm if access_tyt_0==1
	
	* 3) Graduation
	rename grado graduation_exam
	label var graduation_exam "=1 if graduates of any HEI (Take higher education exit exam)" 
	rename grado1 graduation_exam_inm
	label var graduation_exam_inm "=1 if graduates of any HEI (Take higher education exit exam) | immediate access" 
	rename grado_pro graduation_exam_pro
	label var graduation_exam_pro "=1 if graduates of any HEI (Take Saber Pro)" 
	rename grado_pro1 graduation_exam_pro_inm
	label var graduation_exam_pro_inm "=1 if graduates of any HEI (Take Saber Pro) | immediate access" 
	rename grado_tyt graduation_exam_tyt
	label var graduation_exam_tyt "=1 if graduates of any HEI (Take Saber TyT)" 
	rename grado_tyt1 graduation_exam_tyt_inm
	label var graduation_exam_tyt_inm "=1 if graduates of any HEI (Take higher education exit exam) | immediate access" 
	forvalues i=1/8{
		rename grado_`i' graduation_exam_`i'
		label var graduation_exam_`i' "=1 if graduates of any HEI (Take higher education exit exam) after `i' years HS"
		rename grado_pro_`i' graduation_exam_pro_`i'
		label var graduation_exam_pro_`i' "=1 if graduates of any HEI (Take Saber Pro) after `i' years HS"
		rename grado_tyt_`i' graduation_exam_tyt_`i'
		label var graduation_exam_tyt_`i' "=1 if graduates of any HEI (Take Saber TyT) after `i' years HS"
	}
	rename tiempo_grado time_graduation_exam
	label var time_graduation_exam "Time between exams" 
	rename tiempo_grado1 time_graduation_exam_inm
	label var time_graduation_exam_inm "Time between exams | immediate access" 
	rename tiempo_pro time_graduation_pro
	label var time_graduation_pro "Time between Saber 11 - Saber Pro" 
	rename tiempo_pro1 time_graduation_pro_inm
	label var time_graduation_pro_inm "Time between Saber 11 - Saber Pro | immediate access" 
	rename tiempo_tyt time_graduation_tyt
	label var time_graduation_tyt "Time between Saber 11 - Saber TyT" 
	rename tiempo_tyt1 time_graduation_tyt_inm
	label var time_graduation_tyt_inm "Time between Saber 11 - Saber TyT | immediate access" 
	rename punt_pro score_saberpro
	label var score_saberpro "Saber Pro exam standardized score"
	rename punt_pro1 score_saberpro_inm
	label var score_saberpro_inm "Saber Pro exam standardized score | immediate access"
	rename punt_tyt score_sabertyt
	label var score_sabertyt "Saber TyT exam standardized score"
	rename punt_tyt1 score_sabertyt_inm
	label var score_sabertyt_inm "Saber TyT exam standardized score | immediate access"
	forvalues i=1/8{
		foreach x in pro tyt{
			gen score_saber`x'_`i'=score_saber`x' if graduation_exam_`x'_`i'==1
			label var score_saber`x'_`i' "Saber `x' exam standardized score after `i' years HS"
		}
	}
	rename grado_snies graduation_snies
	label var graduation_snies "=1 if graduates of any HEI" 
	gen graduation_snies_inm=graduation_snies
	replace graduation_snies_inm=. if access_0!=1
	label var graduation_snies_inm "=1 if graduates of any HEI | immediate access" 
	rename grado_snies_universitario graduation_snies_pro
	label var graduation_snies_pro "=1 if graduates from 4-years degree of any HEI" 
	gen graduation_snies_pro_inm=graduation_snies_pro
	replace graduation_snies_pro_inm=. if access_0!=1
	label var graduation_snies_pro_inm "=1 if graduates from 4-years degree of any HEI | immediate access" 
	rename grado_snies_tyt graduation_snies_tyt
	label var graduation_snies_tyt "=1 if graduates from 1 or 2-years degree of any HEI" 
	gen graduation_snies_tyt_inm=graduation_snies_tyt
	replace graduation_snies_tyt_inm=. if access_0!=1
	label var graduation_snies_tyt_inm "=1 if graduates from 1 or 2-years degree of any HEI | immediate access" 
	forvalues i=1/7{
		rename grado_snies_`i' graduation_snies_`i'
		label var graduation_snies_`i' "=1 if graduates of any HEI after `i' years HS"
		rename grado_snies_universitario_`i' graduation_snies_pro_`i'
		label var graduation_snies_pro_`i' "=1 if graduates from 4-years degree of any HEI after `i' years HS"
		rename grado_snies_tyt_`i' graduation_snies_tyt_`i'
		label var graduation_snies_tyt_`i' "=1 if graduates from 1 or 2-years degree of any HEI after `i' years HS"
	}
	rename tiempo_grado_snies time_graduation_snies
	label var time_graduation_snies "Time between HS and graduation"
	gen time_graduation_snies_inm=time_graduation_snies
	replace time_graduation_snies_inm=. if access_0!=1
	label var time_graduation_snies_inm "Time between HS and graduation | immediate access"
	gen graduation_snies_stem=(graduation_snies_6==1 & stem==1)
	replace graduation_snies_stem=. if graduation_snies_6==.
	label var graduation_snies_stem "=1 if graduates from STEM major"
	gen graduation_snies_stem_plus=(graduation_snies_6==1 & stem_plus==1)
	replace graduation_snies_stem_plus=. if graduation_snies_6==.
	label var graduation_snies_stem_plus "=1 if graduates from STEM-Plus major"
	gen graduation_snies_arts=(graduation_snies_6==1 & arts==1)
	replace graduation_snies_arts=. if graduation_snies_6==.
	label var graduation_snies_arts "=1 if graduates from Arts major"
	gen graduation_snies_social=(graduation_snies_6==1 & social==1)
	replace graduation_snies_social=. if graduation_snies_6==.
	label var graduation_snies_social "=1 if graduates from Social-humanities major"
	gen graduation_snies_pro_stem=(graduation_snies_pro_6==1 & stem==1)
	replace graduation_snies_pro_stem=. if graduation_snies_pro_6==.
	label var graduation_snies_pro_stem "=1 if graduates from 4-years degree from STEM major"
	gen graduation_snies_pro_stem_plus=(graduation_snies_pro_6==1 & stem_plus==1)
	replace graduation_snies_pro_stem_plus=. if graduation_snies_pro_6==.
	label var graduation_snies_pro_stem_plus "=1 if graduates from 4-years degree from STEM-Plus major"
	gen graduation_snies_pro_arts=(graduation_snies_pro_6==1 & arts==1)
	replace graduation_snies_pro_arts=. if graduation_snies_pro_6==.
	label var graduation_snies_pro_arts "=1 if graduates from 4-years degree from Arts major"
	gen graduation_snies_pro_social=(graduation_snies_pro_6==1 & social==1)
	replace graduation_snies_pro_social=. if graduation_snies_pro_6==.
	label var graduation_snies_pro_social "=1 if graduates from 4-years degree from Social-humanities major"
	gen graduation_snies_tyt_stem=(graduation_snies_tyt_6==1 & stem==1)
	replace graduation_snies_tyt_stem=. if graduation_snies_tyt_6==.
	label var graduation_snies_tyt_stem "=1 if graduates from 1 or 2-years degree from STEM major"
	gen graduation_snies_tyt_stem_plus=(graduation_snies_tyt_6==1 & stem_plus==1)
	replace graduation_snies_tyt_stem_plus=. if graduation_snies_tyt_6==.
	label var graduation_snies_tyt_stem_plus "=1 if graduates from 1 or 2-years degree from STEM-Plus major"
	gen graduation_snies_tyt_arts=(graduation_snies_tyt_6==1 & arts==1)
	replace graduation_snies_tyt_arts=. if graduation_snies_tyt_6==.
	label var graduation_snies_tyt_arts "=1 if graduates from 1 or 2-years degree from Arts major"
	gen graduation_snies_tyt_social=(graduation_snies_tyt_6==1 & social==1)
	replace graduation_snies_tyt_social=. if graduation_snies_tyt_6==.
	label var graduation_snies_tyt_social "=1 if graduates from 1 or 2-years degree from Social-humanities major"
	gen graduation_exam_stem=(graduation_exam_7==1 & stem==1)
	replace graduation_exam_stem=. if graduation_exam_7==.
	label var graduation_exam_stem "=1 if graduates from STEM major (Take higher education exit exam)"
	gen graduation_exam_stem_plus=(graduation_exam_7==1 & stem_plus==1)
	replace graduation_exam_stem_plus=. if graduation_exam_7==.
	label var graduation_exam_stem_plus "=1 if graduates from STEM-Plus major (Take higher education exit exam)"
	gen graduation_exam_arts=(graduation_exam_7==1 & arts==1)
	replace graduation_exam_arts=. if graduation_exam_7==.
	label var graduation_exam_arts "=1 if graduates from Arts major (Take higher education exit exam)"
	gen graduation_exam_social=(graduation_exam_7==1 & social==1)
	replace graduation_exam_social=. if graduation_exam_7==.
	label var graduation_exam_social "=1 if graduates from Social-humanities major (Take higher education exit exam)"
	gen graduation_exam_other=(graduation_exam_7==1 & graduation_exam_stem_plus==0 & graduation_exam_arts==0 & graduation_exam_social==0)
	replace graduation_exam_other=. if graduation_exam_7==.
	label var graduation_exam_other "=1 if graduates from other major (Take higher education exit exam)"
	gen graduation_exam_pro_stem=(graduation_exam_pro_7==1 & stem==1)
	replace graduation_exam_pro_stem=. if graduation_exam_pro_7==.
	label var graduation_exam_pro_stem "=1 if graduates from STEM major (Take Saber Pro)"
	gen graduation_exam_pro_stem_plus=(graduation_exam_pro_7==1 & stem_plus==1)
	replace graduation_exam_pro_stem_plus=. if graduation_exam_pro_7==.
	label var graduation_exam_pro_stem_plus "=1 if graduates from STEM-Plus major (Take Saber Pro)"
	gen graduation_exam_pro_arts=(graduation_exam_pro_7==1 & arts==1)
	replace graduation_exam_pro_arts=. if graduation_exam_pro_7==.
	label var graduation_exam_pro_arts "=1 if graduates from Arts major (Take Saber Pro)"
	gen graduation_exam_pro_social=(graduation_exam_pro_7==1 & social==1)
	replace graduation_exam_pro_social=. if graduation_exam_pro_7==.
	label var graduation_exam_pro_social "=1 if graduates from Social-humanities major (Take Saber Pro)"
	gen graduation_exam_pro_other=(graduation_exam_pro_7==1 & graduation_exam_pro_stem_plus==0 & graduation_exam_pro_arts==0 & graduation_exam_pro_social==0)
	replace graduation_exam_pro_other=. if graduation_exam_pro_7==.
	label var graduation_exam_pro_other "=1 if graduates from other major (Take Saber Pro)"
	gen graduation_exam_tyt_stem=(graduation_exam_tyt_7==1 & stem==1)
	replace graduation_exam_tyt_stem=. if graduation_exam_tyt_7==.
	label var graduation_exam_tyt_stem "=1 if graduates from STEM major (Take Saber TyT)"
	gen graduation_exam_tyt_stem_plus=(graduation_exam_tyt_7==1 & stem_plus==1)
	replace graduation_exam_tyt_stem_plus=. if graduation_exam_tyt_7==.
	label var graduation_exam_tyt_stem_plus "=1 if graduates from STEM-Plus major (Take Saber TyT)"
	gen graduation_exam_tyt_arts=(graduation_exam_tyt_7==1 & arts==1)
	replace graduation_exam_tyt_arts=. if graduation_exam_tyt_7==.
	label var graduation_exam_tyt_arts "=1 if graduates from Arts major (Take Saber TyT)"
	gen graduation_exam_tyt_social=(graduation_exam_tyt_7==1 & social==1)
	replace graduation_exam_tyt_social=. if graduation_exam_tyt_7==.
	label var graduation_exam_tyt_social "=1 if graduates from Social-humanities major (Take Saber TyT)"
	gen graduation_exam_tyt_other=(graduation_exam_tyt_7==1 & graduation_exam_tyt_stem_plus==0 & graduation_exam_tyt_arts==0 & graduation_exam_tyt_social==0)
	replace graduation_exam_tyt_other=. if graduation_exam_tyt_7==.
	label var graduation_exam_tyt_other "=1 if graduates from other major (Take Saber TyT)"
	rename posgrado postgraduate
	label var postgraduate "=1 if starts a graduate degree"
	
	* 4) Formal work
	rename tiempo_empleo time_first_job
	label var time_first_job "Time to first formal employment after graduation"
	rename tiempo_empleo_exam time_first_job_exam
	label var time_first_job_exam "Time to first formal employment after take Saber Pro/TyT"

	preserve
		gen aux=round(icfes_per/10)
		keep estu_snp aux trabajo* numero_trimestres* ibc* sm* sector2* cp* tamaño* numero_empleados* dias* practicante* independiente* empleado*
		reshape long trabajo numero_trimestres ibc sm sm_diario ibc_diario sector cp_pila tamaño numero_empleados dias practicante independiente empleado, i(estu_snp) j(t)
		gen diff=t-aux
		drop if diff<0
		rename trabajo work_
		rename numero_trimestres quarters_worked_
		rename ibc wage_
		rename ibc_diario daily_wage_
		rename sm mw_
		rename sm_diario daily_mw_
		rename sector sector_
		rename cp_pila major_city_
		rename tamaño firm_size_
		rename dias dias_
		rename numero_empleados numero_empleados_
		rename practicante practicante_
		rename independiente independiente_
		rename empleado empleado_
		drop t 
		reshape wide quarters_worked_ work_ wage_ daily_wage_ mw_ daily_mw_ sector_ major_city_ firm_size_ numero_empleados_ dias_ practicante_ independiente_ empleado_, i(estu_snp) j(diff)
		drop aux
		tempfile work
		save `work'
	restore
	drop trabajo* numero_trimestres* ibc* sm* sector2* cp* tamaño* numero_empleados* dias* practicante* independiente* empleado*
	merge 1:1 estu_snp using `work', nogen
	drop sector_0 sector_1 sector_2 sector_3 sector_4 sector_5 sector_6
	drop major_city_0 major_city_1 major_city_2 major_city_3 major_city_4 major_city_5 major_city_6 
	drop firm_size_0 firm_size_1 firm_size_2 firm_size_3 firm_size_4 firm_size_5 firm_size_6
	drop numero_empleados_0 numero_empleados_1 numero_empleados_2 numero_empleados_3 numero_empleados_4 numero_empleados_5 numero_empleados_6
	
	foreach x of varlist quarters_worked_* work_* wage_* daily_wage_* mw_* dias_* practicante_* independiente_* empleado_*{
		replace `x'=0 if `x'==.
	}
	foreach x in major_city firm_size numero_empleados {
		forvalues i=7/10{
			replace `x'_`i'=. if work_`i'==0
		}
	}
	foreach x in sector{
		forvalues i=7/10{
			replace `x'_`i'="" if work_`i'==0
		}
	}
	foreach x in wage daily_wage dias{
		forvalues i=0/10{
			rename `x'_`i' `x'0_`i'
			gen `x'_`i'= `x'0_`i'
			replace `x'_`i'=. if work_`i'==0
		}
	}
	foreach x in daily_mw{
		forvalues i=0/10{
			replace `x'_`i'=. if work_`i'==0
		}
	}	
	forvalues i=0/10{
		label var work_`i' "=1 if formal employment after `i' years HS"
		label var quarters_worked_`i' "Quarters of formal employment after `i' years HS"
		label var wage0_`i' "Average wage after `i' years HS"
		label var daily_wage0_`i' "Average daily wage after `i' years HS"
		label var mw_`i' "Average wage after `i' years HS (minimum wages)"
		label var daily_mw_`i' "Average daily wage after `i' years HS (minimum wages)"
	}
	label var sector_7 "Sector of employment after 7 years HS"
	label var sector_8 "Sector of employment after 8 years HS"
	label var sector_9 "Sector of employment after 9 years HS"
	label var major_city_7 "Work in a major city after 7 years HS"
	label var major_city_8 "Work in a major city after 8 years HS"
	label var major_city_9 "Work in a major city after 9 years HS"
	label var firm_size_7 "Firm size after 7 years HS"
	label var firm_size_8 "Firm size after 8 years HS"
	label var firm_size_9 "Firm size after 9 years HS"
	forvalues i=0/10{
		gen ln_wage_`i'=ln(wage_`i')
		label var ln_wage_`i' "Log average wage after `i' years HS"
		gen ln_daily_wage_`i'=ln(daily_wage_`i')
		label var ln_daily_wage_`i' "Log average daily wage after `i' years HS"
		drop wage_`i' ln_daily_wage_`i'
	}
	
	foreach x of varlist time_first_job time_first_job_exam quarters_worked* work_* wage* daily_* mw* major_city_* firm_size_* ln_* dias* numero_empleados* practicante_* independiente_* empleado_*{
		replace `x'=. if m==1
	}
	replace sector_7="" if m==1
	replace sector_8="" if m==1
	replace sector_9="" if m==1
	gegen quarters_worked=rowtotal(quarters_worked_*)
	
	* 5) College quality
	rename acreditada hq
	label var hq "=1 if high-quality HEI in 2014"
	rename noacreditada lq
	label var lq "=1 if low-quality HEI in 2014"
	rename privada pri
	label var pri "=1 if private HEI"
	rename publica pub
	label var pub "=1 if public HEI"
	label var hq_pri "=1 if high-quality & private HEI in 2014"
	label var hq_pub "=1 if high-quality & public HEI in 2014"
	label var lq_pri "=1 if low-quality & private HEI in 2014"
	label var lq_pub "=1 if low-quality & public HEI in 2014"
	
	cap drop noacreditada noacreditada2018 hq_pri2018 hq_pub2018 lq_pri2018 lq_pub2018
	rename (acreditada_año acreditada2018 hqp_25) (hq_var hq_18 hq_25p)
	gen hq_14=hq
	
	replace hq_25p=0 if hq_25p==.
	gen lq_var=(hq_var==0)
	gen lq_14=(hq_14==0)
	gen lq_18=(hq_18==0)
	gen lq_25p=(hq_25p==0)
		
	label var hq_18 "=1 if high-quality HEI in 2018"
	label var hq_14 "=1 if high-quality HEI in 2014"
	label var hq_var "=1 if high-quality HEI variable between years"
	label var hq_25p "=1 if the HEI has 25% high-quality programs in 2018"
	
	label var lq_18 "=1 if low-quality HEI in 2018"
	label var lq_14 "=1 if low-quality HEI in 2014"
	label var lq_var "=1 if low-quality HEI variable between years"
	label var lq_25p "=1 if the HEI has low-quality programs in 2018"
		
	foreach o in hq_var hq_14 hq_18 hq_25p lq_var lq_14 lq_18 lq_25p{
		foreach w in pub pri{
			gen `o'_`w'=(`o'==1 & `w'==1)
			replace `o'_`w'=. if `o'==.
		}
	}
		
	label var hq_18_pub "=1 if high-quality & public HEI in 2018"
	label var hq_14_pub "=1 if high-quality & public HEI in 2014"
	label var hq_var_pub "=1 if high-quality & public HEI variable between years"
	label var hq_25p_pub "=1 if the HEI has 25% high-quality & public programs in 2018"
	
	label var lq_18_pub "=1 if low-quality & public HEI in 2018"
	label var lq_14_pub "=1 if low-quality & public HEI in 2014"
	label var lq_var_pub "=1 if low-quality & public HEI variable between years"
	label var lq_25p_pub "=1 if the HEI has & public low-quality programs in 2018"
	
	label var hq_18_pri "=1 if high-quality & private HEI in 2018"
	label var hq_14_pri "=1 if high-quality & private HEI in 2014"
	label var hq_var_pri "=1 if high-quality & private HEI variable between years"
	label var hq_25p_pri "=1 if the HEI has 25% high-quality & private programs in 2018"
	
	label var lq_18_pri "=1 if low-quality & private HEI in 2018"
	label var lq_14_pri "=1 if low-quality & private HEI in 2014"
	label var lq_var_pri "=1 if low-quality & private HEI variable between years"
	label var lq_25p_pri "=1 if the HEI has & private low-quality programs in 2018"


	* 6) Heterogeneities
	foreach o of varlist access_0 access_1 access_2 access_3 access_4 access_5 access_6 access_7 graduation_snies graduation_snies_inm graduation_snies_pro graduation_snies_pro_inm graduation_snies_tyt graduation_snies_tyt_inm graduation_exam graduation_exam_inm graduation_exam_pro graduation_exam_pro_inm graduation_exam_tyt graduation_exam_tyt_inm graduation_exam_1 graduation_exam_2 graduation_exam_3 graduation_exam_4 graduation_exam_5 graduation_exam_6 graduation_exam_7 graduation_exam_pro_1 graduation_exam_pro_2 graduation_exam_pro_3 graduation_exam_pro_4 graduation_exam_pro_5 graduation_exam_pro_6 graduation_exam_pro_7 graduation_exam_tyt_1 graduation_exam_tyt_2 graduation_exam_tyt_3 graduation_exam_tyt_4 graduation_exam_tyt_5 graduation_exam_tyt_6 graduation_exam_tyt_7 graduation_snies_1 graduation_snies_2 graduation_snies_3 graduation_snies_4 graduation_snies_5 graduation_snies_6 graduation_snies_7 graduation_snies_pro_1 graduation_snies_pro_2 graduation_snies_pro_3 graduation_snies_pro_4 graduation_snies_pro_5 graduation_snies_pro_6 graduation_snies_pro_7 graduation_snies_tyt_1 graduation_snies_tyt_2 graduation_snies_tyt_3 graduation_snies_tyt_4 graduation_snies_tyt_5 graduation_snies_tyt_6 graduation_snies_tyt_7 {
		foreach w in hq lq pri pub hq_pri hq_pub lq_pri lq_pub{
			gen `o'_`w'=(`o'==1 & `w'==1)
			replace `o'_`w'=. if `o'==.
		}
	}

	foreach o of varlist dropout_inm dropout_6 dropout_inm_pro dropout_inm_tyt time_graduation_exam time_graduation_exam_inm time_graduation_pro time_graduation_pro_inm time_graduation_tyt time_graduation_tyt_inm score_saberpro score_saberpro_inm score_sabertyt score_sabertyt_inm {
		foreach w in hq lq pri pub hq_pri hq_pub lq_pri lq_pub{
			gen `o'_`w'=`o' if `w'==1
		}
	}

	foreach x of varlist stem stem_plus arts social{
		replace `x'=0 if `x'==.
	}
	
	foreach o in access_0 access_1 enrolled_1{
		foreach w in hq_var hq_14 hq_18 hq_25p hq_var_pub hq_var_pri hq_14_pub hq_14_pri hq_18_pub hq_18_pri hq_25p_pub hq_25p_pri lq_var lq_14 lq_18 lq_25p lq_var_pub lq_var_pri lq_14_pub lq_14_pri lq_18_pub lq_18_pri lq_25p_pub lq_25p_pri{
			gen `o'_`w'=(`o'==1 & `w'==1)
			replace `o'_`w'=. if `o'==.
		}
	}

	foreach o in access_0 access_1{
		foreach w in stem stem_plus arts social{
			gen `o'_`w'=`o'*`w'
		}
	}
	
	forvalues i=0/1{
		gen access_`i'_pro=(access_`i'==1 & nivel_programa=="Universitaria")
		replace access_`i'_pro=. if access_`i'==.
		gen access_`i'_tyt=(access_`i'==1 & nivel_programa!="Universitaria")
		replace access_`i'_tyt=. if access_`i'==.
	}

	gen enrolled_1_pro=(enrolled_1==1 & nivel_programa=="Universitaria")
	replace enrolled_1_pro=. if enrolled_1==.
	gen enrolled_1_tyt=(enrolled_1==1 & nivel_programa!="Universitaria")
	replace enrolled_1_tyt=. if enrolled_1==.

	foreach o in access_0_pro access_0_tyt access_1_pro access_1_tyt enrolled_1_pro enrolled_1_tyt access_0_stem access_0_stem_plus access_0_arts access_0_social access_1_stem access_1_stem_plus access_1_arts access_1_social{
		foreach w in pri pub{
			gen `o'_`w'=(`o'==1 & `w'==1)
			replace `o'_`w'=. if `o'==.
		}
	}
	

	* 7) School features
	label var parental_ba "=1 if parents with college degree"
	label var college_selectivity "Quartiles of average Saber 11 scores admitted by the college"
	label var major_selectivity "Quartiles of average Saber 11 scores admitted by the major"
	label var quartil_enrollment "Quartiles of percentage of immediate access to HE by school"
	label var quartil_enrollment_hq "Quartiles of percentage of immediate access to high-quality HE by school"
	label var quartil_sb11 "Quartiles of Saber 11 score by school"
	label var quartil_p310 "Quartiles of percentage of students with 310 or more Saber 11 by school"
	label var stem "=1 if STEM major"
	label var stem_plus "=1 if STEM plus major"
	label var arts "=1 if Arts major"
	label var social "=1 if Social science or humanities major"
	
	* 8) Pre-intervention covariates:
	label var icfes_per "Semester of SABER 11 exam"
	rename female icfes_female
	label var icfes_female "=1 if female in exam day"
	rename icfes_estudiante_edad icfes_age
	label var icfes_age "Age in exam day"
	rename estu_trabaja icfes_works
	label var icfes_works "=1 if employed in exam day"
	label var ethnminority "=1 if self-identifies as ethnic minority in exam day"
	forvalues i=1/4{
	rename educm`i' icfes_educm`i'
	rename educp`i' icfes_educp`i'
	}
	label var icfes_educm1 "=1 if mother's education is primary"
	label var icfes_educm2 "=1 if mother's education is secondary"
	label var icfes_educm3 "=1 if mother's education is technical"
	label var icfes_educm4 "=1 if mother's education is university"
	label var icfes_educp1 "=1 if father's education is primary"
	label var icfes_educp2 "=1 if father's education is secondary"
	label var icfes_educp3 "=1 if father's education is technical"
	label var icfes_educp4 "=1 if father's education is university"
	rename fami_estratovivienda11 icfes_stratum
	label var icfes_stratum "Household residential stratum"
	forvalues s=1/6{
	rename stratum`s' icfes_stratum`s'
	label var icfes_stratum`s'"=1 if residential strata `s'"
	}
	rename stratum7 icfes_stratum7
	label var icfes_stratum7"=1 if not residential strata"

	forvalues c=1/5{
	rename schoolsch`c' icfes_schoolsch`c'
	}
	label var icfes_schoolsch1 "=1 if high school schedule is full day"
	label var icfes_schoolsch2 "=1 if high school schedule is morning"
	label var icfes_schoolsch3 "=1 if high school schedule is evening"
	label var icfes_schoolsch4 "=1 if high school schedule is afternoon"
	label var icfes_schoolsch5 "=1 if high school schedule is weekend"
	
	gen icfes_privatehs=.
	replace icfes_privatehs=0 if cole_naturaleza11=="OFICIAL"
	replace icfes_privatehs=1 if cole_naturaleza11=="NO OFICIAL"
	label define origen_ 0 "0: Oficial" 1 "1: No oficial" 
	label values icfes_privatehs origen_
	drop cole_naturaleza11
	label var icfes_privatehs "=1 if high school is private"
	label define privatelabel_ 0 "Public high school" 1 "Private high school"
	label values icfes_privatehs privatelabel_
	
	gen icfes_student= 1 if estu_estudiante11=="ESTUDIANTE"
	replace icfes_student= 0 if estu_estudiante11=="INDIVIDUAL"
	label define icfes_student 0 "Individual" 1 "Estudent"
	label values icfes_student icfes_student
	drop estu_estudiante11

	gen family_size=.
	replace family_size=1 if fami_personashogar11=="Una"
	replace family_size=2 if fami_personashogar11=="Dos"
	replace family_size=3 if fami_personashogar11=="Tres"
	replace family_size=4 if fami_personashogar11=="Cuatro"
	replace family_size=5 if fami_personashogar11=="Cinco"
	replace family_size=6 if fami_personashogar11=="Seis"
	replace family_size=7 if fami_personashogar11=="Siete"
	replace family_size=8 if fami_personashogar11=="Ocho"
	replace family_size=9 if fami_personashogar11=="Nueve"
	replace family_size=10 if fami_personashogar11=="Diez"
	replace family_size=11 if fami_personashogar11=="Once"
	replace family_size=12 if fami_personashogar11=="Doce o más"
	label var family_size "Family size in exam day"
	drop fami_personashogar11
	
	tab cole_calendario11, gen(cole_calendario_)
	rename (cole_calendario_1 cole_calendario_2 cole_calendario_3) (school_schedule_a school_schedule_b school_schedule_other)
	drop cole_calendario11

	tab fami_pisoshogar11, gen(floors_)
	label var floors_1 "=1 if the floor material is cement/ gravel/ brick"
	label var floors_2 "=1 if the floor material is wood, board, wooden plank"
	label var floors_3 "=1 if the floor material is polished wood, tile, marble"
	label var floors_4 "=1 if the floor material is land, sand"
	drop fami_pisoshogar11
	
	gen family_internet=1 if fami_tieneinternet11=="Si"
	replace family_internet=0 if fami_tieneinternet11=="No"
	label var family_internet "=1 if the family has internet"
	drop fami_tieneinternet11
	
	gen family_laptop=1 if fami_tienecomputador11=="Si"
	replace family_laptop=0 if fami_tienecomputador11=="No"
	label var family_laptop "=1 if the family has a laptop"
	drop fami_tienecomputador11
	
	gen family_car=1 if fami_tieneautomovil11=="Si"
	replace family_car=0 if fami_tieneautomovil11=="No"
	label var family_car "=1 if the family has a car"
	drop fami_tieneautomovil11
	
	gen family_cell_phone=1 if fami_tiene_celular11=="Si"
	replace family_cell_phone=0 if fami_tiene_celular11=="No" 
	label var family_cell_phone "=1 if the family has a cell_phone"
	drop fami_tiene_celular11
	
	gen student_resides_urban=1 if estu_areareside11=="Cabecera Municipal"
	replace student_resides_urban=0 if estu_areareside11=="Area Rural"
	label var student_resides_urban "=1 if the student resides in the municipal capital"
	drop estu_areareside11
	
	gen school_urban=1 if cole_area_ubicacion11=="URBANO"
	replace school_urban=0 if cole_area_ubicacion11=="RURAL"
	label var school_urban "=1 if the school location is urban"
	drop cole_area_ubicacion11
	
	*** corregimos valores de acreditación variable para icfes_per=20132	
	foreach x of varlist hq_var lq_var hq_var_pub hq_var_pri lq_var_pub lq_var_pri access_0_hq_var access_0_hq_var_pub access_0_hq_var_pri access_0_lq_var access_0_lq_var_pub access_0_lq_var_pri access_1_hq_var access_1_hq_var_pub access_1_hq_var_pri access_1_lq_var access_1_lq_var_pub access_1_lq_var_pri enrolled_1_hq_var enrolled_1_hq_var_pub enrolled_1_hq_var_pri enrolled_1_lq_var enrolled_1_lq_var_pub enrolled_1_lq_var_pri{
		replace `x'=. if icfes_per==20132
	}	

	*9) costos del programa SPP y GE
	merge 1:1 estu_snp using `costos_spp', nogen
	recode costo_pri* costo_soc* (.=0)
	merge m:1 codigo_programa using `costo_programas_spp', keep(1 3) nogen
	merge m:1 codigo_ies using `costo_ies_spp', keep(1 3) nogen
	merge m:1 codigo_ies using `costo_ies_f', keep(1 3) nogen
	
	gen costo_matricula=costo_matricula_f if pub==1
	replace costo_matricula=costo_matricula_p if costo_matricula==. & pri==1
	replace costo_matricula=costo_matricula_i if costo_matricula==. & pri==1
	replace costo_matricula=. if costo_matricula!=. & codigo_ies ==9110
	drop costo_matricula_p costo_matricula_i costo_matricula_f
	replace costo_matricula=. if access_6!=1
	count if costo_matricula==. & access_6==1
	
	glevelsof nivel_programa, local(nivel)
	foreach n of local nivel{
		foreach x in hq_pri lq_pri hq_pub lq_pub{
			sum costo_matricula if `x'==1 & access_6==1 & nivel_programa=="`n'"
			replace costo_matricula=r(mean) if `x'==1 & access_6==1 & costo_matricula==. & nivel_programa=="`n'"
		}
	}
	count if costo_matricula==. & access_6==1 // 1594 que no tienen código ies
	sum costo_matricula if access_6==1
	replace costo_matricula=r(mean) if access_6==1 & costo_matricula==.
	replace costo_matricula=costo_matricula*2
	gen costo_matricula_pub=costo_matricula if pub==1
	forvalues i=1/6{
		gen costo_matricula_`i'_spp=costo_matricula if enrolled_`i'==1
		gen costo_matricula_pub_`i'_spp=costo_matricula_pub if enrolled_`i'==1
	}
	
	forvalues i=1/6{
		gen costo_social_pub_`i'_spp=.
		replace costo_social_pub_`i'_spp=costo_social_`i'_spp if costo_social_`i'_spp!=0
		gegen p=mean(costo_social_pub_`i'_spp), by(codigo_ies)
		replace costo_social_pub_`i'_spp=p if costo_social_pub_`i'_spp==. & pub==1 & enrolled_`i'==1
		replace costo_social_pub_`i'_spp=costo_matricula_pub_`i'_spp if costo_social_pub_`i'_spp==. & pub==1
		replace costo_social_pub_`i'_spp=0 if costo_social_pub_`i'_spp==.
		drop p
	}
	
	drop costo_matricula costo_matricula_pub
	
	foreach x of varlist costo*spp{
		replace `x'=. if icfes_per>20152
	}

	drop if icfes_per==20121 | icfes_per==20131 | icfes_per==20141 | icfes_per==20151

	merge 1:1 estu_snp using `costos_ge', nogen
	recode costo_privado_1_ge costo_privado_2_ge costo_privado_3_ge costo_privado_4_ge costo_privado_5_ge costo_privado_6_ge costo_privado_7_ge costo_privado_8_ge costo_social_1_ge costo_social_2_ge costo_social_3_ge costo_social_4_ge costo_social_5_ge costo_social_6_ge costo_social_7_ge costo_social_8_ge (.=0)
	
	merge m:1 codigo_programa using `costo_programas_ge', keep(1 3) nogen
	merge m:1 codigo_ies using `costo_ies_ge', keep(1 3) nogen
	merge m:1 codigo_ies using `costo_ies_f', keep(1 3) nogen
	
	gen costo_matricula=costo_matricula_f if pub==1
	replace costo_matricula=costo_matricula_p if costo_matricula==. & pri==1
	replace costo_matricula=costo_matricula_i if costo_matricula==. & pri==1
	replace costo_matricula=. if costo_matricula!=. & codigo_ies ==9110
	drop costo_matricula_p costo_matricula_i costo_matricula_f
	replace costo_matricula=. if access_he!=1
	count if costo_matricula==. & access_he==1
	
	glevelsof nivel_programa, local(nivel)
	foreach n of local nivel{
		foreach x in hq_var_pub hq_var_pri lq_var_pub lq_var_pri{
			sum costo_matricula if `x'==1 & access_he==1 & nivel_programa=="`n'"
			replace costo_matricula=r(mean) if `x'==1 & access_he==1 & costo_matricula==. & nivel_programa=="`n'"
		}
	}
	count if costo_matricula==. & access_he==1
	sum costo_matricula if access_he==1
	replace costo_matricula=r(mean) if access_he==1 & costo_matricula==.
	replace costo_matricula=costo_matricula*2
	gen costo_matricula_pub_ge=costo_matricula if pub==1
	forvalues i=1/4{
		gen costo_matricula_`i'_ge=costo_matricula if enrolled_`i'==1
		gen costo_matricula_pub_`i'_ge=costo_matricula_pub_ge if enrolled_`i'==1
	}
	drop costo_matricula_pub_ge
	cap drop p
	forvalues i=1/4{
		gen costo_social_pub_`i'_ge=.
		replace costo_social_pub_`i'_ge=costo_social_`i'_ge if costo_social_`i'_ge!=0
		gegen p=mean(costo_social_pub_`i'_ge), by(codigo_ies)
		replace costo_social_pub_`i'_ge=p if costo_social_pub_`i'_ge==. & pub==1 & enrolled_`i'==1
		replace costo_social_pub_`i'_ge=costo_matricula_pub_`i'_ge if costo_social_pub_`i'_ge==. & pub==1
		replace costo_social_pub_`i'_ge=0 if costo_social_pub_`i'_ge==.
		drop p
	}
	
	drop if m==1
	drop fami_numlibros11 matricula_2015_1 sostenimiento_2015_1 matricula_2015_2 sostenimiento_2015_2 matricula_2016_1 valor_2016_1 sostenimiento_2016_1 matricula_2016_2 valor_2016_2 sostenimiento_2016_2 matricula_2017_1 valor_2017_1 sostenimiento_2017_1 matricula_2017_2 valor_2017_2 sostenimiento_2017_2 matricula_2018_1 valor_2018_1 sostenimiento_2018_1 matricula_2018_2 valor_2018_2 sostenimiento_2018_2 matricula_2019_1 valor_2019_1 sostenimiento_2019_1 matricula_2019_2 valor_2019_2 sostenimiento_2019_2 matricula_2020_1 valor_2020_1 sostenimiento_2020_1 matricula_2020_2 valor_2020_2 sostenimiento_2020_2 matricula_2021_1 valor_2021_1 sostenimiento_2021_1 matricula_2021_2 valor_2021_2 sostenimiento_2021_2 matricula_2022_1 valor_2022_1 sostenimiento_2022_1 matricula_2022_2 valor_2022_2 sostenimiento_2022_2 estado_del_credito cuota deuda_acumulada numero_semestres _merge_spp versión_ge grupoétnicoalquepertenece_ge discapacidad_ge esvictimadelconflicto_ge _merge_G_excelencia periodoaprobación _merge_G_equidad _merge_snies _merge_posgrado daily_mw* daily_wage* ranking_ge_ex_sb11_2 m
		
	save "${data}/data_RD.dta", replace	
	
}


